{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import akshare as ak\n",
    "from pypfopt.efficient_frontier import EfficientFrontier\n",
    "from pypfopt import risk_models\n",
    "from pypfopt import expected_returns\n",
    "from pypfopt.discrete_allocation import DiscreteAllocation, get_latest_prices\n",
    "from concurrent.futures import ThreadPoolExecutor,as_completed,wait,ALL_COMPLETED\n",
    "import logging\n",
    "from \n",
    "\n",
    "pd.options.display.float_format = '{:.6f}'.format\n",
    "# 配置日志记录\n",
    "logging.basicConfig(level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(symbol:str)->pd.DataFrame:\n",
    "    df_hist = ak.fund_etf_hist_em(symbol=symbol)\n",
    "    df_hist = df_hist[['日期','收盘']]\n",
    "    df_hist.columns = ['date', 'close']\n",
    "    df_hist['date'] = pd.to_datetime(df_hist['date'],format='%Y-%m-%d')\n",
    "    df_hist.set_index('date', inplace=True)\n",
    "    df_hist.rename(columns={'close': symbol}, inplace=True) \n",
    "    return df_hist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_code = ak.fund_etf_spot_em()['代码']\n",
    "results = []\n",
    "\n",
    "# 根据CPU核心数动态调整并发数\n",
    "max_workers = min(32, os.cpu_count() * 5)\n",
    "# 创建线程池\n",
    "with ThreadPoolExecutor(max_workers=max_workers) as executor:\n",
    "    futures = [executor.submit(get_data, code) for code in df_code]\n",
    "\n",
    "# 确保所有任务完成\n",
    "wait(futures, return_when=ALL_COMPLETED)\n",
    "\n",
    "# 处理并发任务的结果\n",
    "for future in as_completed(futures):\n",
    "    try:\n",
    "        result = future.result()\n",
    "        if result is not None:\n",
    "            results.append(result)\n",
    "    except Exception as e:\n",
    "        # 记录更详细的错误信息\n",
    "        logging.error(f\"Future error (code={future.kwargs['symbol']}): {e}\")\n",
    "        # 可以考虑在这里记录日志或发送警报\n",
    "\n",
    "# 拼接结果\n",
    "# 确保所有数据帧的索引一致，或者在拼接时忽略索引\n",
    "df = pd.concat(results, axis=1)\n",
    "\n",
    "# 统计空值情况\n",
    "#print(df.isnull().sum())\n",
    "# 删除空值\n",
    "#df.dropna(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.to_csv('dataT.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('dataT.csv',date_format='%Y/%m/%d')\n",
    "df['date'] = pd.to_datetime(df['date'])\n",
    "df.set_index('date',inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Dev\\AppData\\Local\\Temp\\ipykernel_10852\\809947680.py:1: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
      "  df.fillna(method='ffill', inplace=True)\n"
     ]
    }
   ],
   "source": [
    "df.fillna(method='ffill', inplace=True)\n",
    "df = df.iloc[-30:,:50]\n",
    "#df.fillna(value=0,inplace=True)\n",
    "df.dropna(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\Dev\\.conda\\envs\\FAL\\Lib\\site-packages\\pypfopt\\risk_models.py:70: UserWarning: The covariance matrix is non positive semidefinite. Amending eigenvalues.\n",
      "  warnings.warn(\n",
      "c:\\Users\\Dev\\.conda\\envs\\FAL\\Lib\\site-packages\\pypfopt\\risk_models.py:89: UserWarning: Could not fix matrix. Please try a different risk model.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "ret = expected_returns.mean_historical_return(df)\n",
    "risk = risk_models.sample_cov(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expected annual return: 212.2%\n",
      "Annual volatility: 1.3%\n",
      "Sharpe Ratio: 159.43\n"
     ]
    }
   ],
   "source": [
    "ef = EfficientFrontier(ret, risk)\n",
    "ef.max_sharpe()\n",
    "weights1 = ef.clean_weights()\n",
    "ef.portfolio_performance(verbose=True)\n",
    "weights2 = ef.clean_weights()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "OrderedDict([('159596', 0.0),\n",
       "             ('159717', 0.0),\n",
       "             ('159595', 0.0),\n",
       "             ('517170', 0.0),\n",
       "             ('512960', 0.0),\n",
       "             ('562310', 0.0),\n",
       "             ('515880', 0.0),\n",
       "             ('561900', 0.0),\n",
       "             ('560660', 0.02616),\n",
       "             ('159508', 0.0),\n",
       "             ('562060', 0.0),\n",
       "             ('512990', 0.0),\n",
       "             ('159582', 0.0),\n",
       "             ('511820', 0.0),\n",
       "             ('159719', 0.0),\n",
       "             ('562000', 0.0),\n",
       "             ('159740', 0.0),\n",
       "             ('159335', 0.0),\n",
       "             ('517400', 0.0),\n",
       "             ('513770', 0.0),\n",
       "             ('510330', 0.0),\n",
       "             ('159003', 0.0),\n",
       "             ('512380', 0.0),\n",
       "             ('159750', 0.0),\n",
       "             ('159748', 0.0),\n",
       "             ('513080', 0.01422),\n",
       "             ('563330', 0.0),\n",
       "             ('561130', 0.0),\n",
       "             ('159680', 0.0),\n",
       "             ('513390', 0.02464),\n",
       "             ('159605', 0.0),\n",
       "             ('518890', 0.051),\n",
       "             ('159630', 0.0),\n",
       "             ('159791', 0.0),\n",
       "             ('159792', 0.0),\n",
       "             ('510170', 0.0),\n",
       "             ('159507', 0.0),\n",
       "             ('159631', 0.0),\n",
       "             ('513020', 0.0),\n",
       "             ('588900', 0.0),\n",
       "             ('159726', 0.0),\n",
       "             ('159699', 0.0),\n",
       "             ('588210', 0.0),\n",
       "             ('562990', 0.0),\n",
       "             ('515330', 0.0),\n",
       "             ('561120', 0.0),\n",
       "             ('561950', 0.0),\n",
       "             ('511880', 0.88398),\n",
       "             ('516120', 0.0),\n",
       "             ('159617', 0.0)])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weights2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    " # 获取股票指标数据\n",
    "stock_a_indicator_lg_df = ak.stock_a_indicator_lg(symbol=\"000001\")\n",
    "stock_a_indicator_lg_df['trade_date'] = pd.to_datetime(stock_a_indicator_lg_df['trade_date'])\n",
    "stock_a_indicator_lg_df.set_index('trade_date', inplace=True)\n",
    "stock_individual_fund_flow_df = ak.stock_individual_fund_flow(stock=\"000001\",market=\"sz\")\n",
    "stock_individual_fund_flow_df[\"日期\"] = pd.to_datetime(stock_individual_fund_flow_df[\"日期\"])\n",
    "stock_individual_fund_flow_df.rename(columns={\"日期\":\"trade_date\"},inplace=True)\n",
    "stock_individual_fund_flow_df.set_index(\"trade_date\",inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.concat([stock_a_indicator_lg_df, stock_individual_fund_flow_df], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['returns'] = data['收盘价'].pct_change()\n",
    "data['returns'] = data['returns'].shift(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.dropna(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.08920916927660265\n"
     ]
    }
   ],
   "source": [
    "ic = data['主力净流入-净额'].corr(data['returns'])\n",
    "print(ic)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('returns', 1.0), ('超大单净流入-净占比', 0.12220795783307518), ('超大单净流入-净额', 0.11660867294556157), ('主力净流入-净额', 0.08920916927660265), ('dv_ratio', 0.06522060634987618), ('主力净流入-净占比', 0.06514848222250519), ('dv_ttm', 0.010164310643697287), ('涨跌幅', -0.034919701171046175), ('小单净流入-净占比', -0.03602046123629102), ('大单净流入-净额', -0.04845389559210988), ('ps_ttm', -0.05196238489462611), ('小单净流入-净额', -0.07761765128830561), ('中单净流入-净占比', -0.08094385163841232), ('ps', -0.08279697894794412), ('pe', -0.08281195878605989), ('total_mv', -0.0828247617417393), ('pe_ttm', -0.0853429876550905), ('收盘价', -0.09028592630084409), ('中单净流入-净额', -0.09081468636321938), ('pb', -0.1146319085258306), ('大单净流入-净占比', -0.13314606935731338)]\n"
     ]
    }
   ],
   "source": [
    "dic = {}\n",
    "for col in data.columns:\n",
    "    dic[col]=data[col].corr(data['returns'])\n",
    "sorted_dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)\n",
    "print(sorted_dic)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import akshare as ak\n",
    "data = ak.stock_zh_a_hist(symbol=\"600519\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.columns=['Date','Code','Open','Close','High','Low','Volume','Turnover','Amplitude','Change_pct','Change_amt','Turnover ']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['Date']  = pd.to_datetime(data['Date'],format='%Y-%m-%d')\n",
    "data.set_index('Date',inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyError",
     "evalue": "'Buy'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "File \u001b[1;32mc:\\Users\\Dev\\.conda\\envs\\FAL\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3805\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m   3804\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3805\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[0;32m   3806\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
      "File \u001b[1;32mindex.pyx:167\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "File \u001b[1;32mindex.pyx:196\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
      "File \u001b[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7081\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "File \u001b[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7089\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;31mKeyError\u001b[0m: 'Buy'",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[10], line 17\u001b[0m\n\u001b[0;32m     15\u001b[0m ax1\u001b[38;5;241m.\u001b[39mplot(data\u001b[38;5;241m.\u001b[39mindex, data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m20_MA\u001b[39m\u001b[38;5;124m'\u001b[39m], label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m20-Day MA\u001b[39m\u001b[38;5;124m'\u001b[39m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124morange\u001b[39m\u001b[38;5;124m'\u001b[39m, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.6\u001b[39m)\n\u001b[0;32m     16\u001b[0m \u001b[38;5;66;03m# Plot buy signals\u001b[39;00m\n\u001b[1;32m---> 17\u001b[0m ax1\u001b[38;5;241m.\u001b[39mplot(data[data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBuy\u001b[39m\u001b[38;5;124m'\u001b[39m]]\u001b[38;5;241m.\u001b[39mindex, data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mClose\u001b[39m\u001b[38;5;124m'\u001b[39m][data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBuy\u001b[39m\u001b[38;5;124m'\u001b[39m]], \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m^\u001b[39m\u001b[38;5;124m'\u001b[39m, markersize\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mg\u001b[39m\u001b[38;5;124m'\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBuy Signal\u001b[39m\u001b[38;5;124m'\u001b[39m, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m     18\u001b[0m \u001b[38;5;66;03m# Plot sell signals\u001b[39;00m\n\u001b[0;32m     19\u001b[0m ax1\u001b[38;5;241m.\u001b[39mplot(data[data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSell\u001b[39m\u001b[38;5;124m'\u001b[39m]]\u001b[38;5;241m.\u001b[39mindex, data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mClose\u001b[39m\u001b[38;5;124m'\u001b[39m][data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSell\u001b[39m\u001b[38;5;124m'\u001b[39m]], \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mv\u001b[39m\u001b[38;5;124m'\u001b[39m, markersize\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSell Signal\u001b[39m\u001b[38;5;124m'\u001b[39m, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n",
      "File \u001b[1;32mc:\\Users\\Dev\\.conda\\envs\\FAL\\Lib\\site-packages\\pandas\\core\\frame.py:4102\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m   4100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m   4101\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 4102\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mget_loc(key)\n\u001b[0;32m   4103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m   4104\u001b[0m     indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
      "File \u001b[1;32mc:\\Users\\Dev\\.conda\\envs\\FAL\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m   3807\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[0;32m   3808\u001b[0m         \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[0;32m   3809\u001b[0m         \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[0;32m   3810\u001b[0m     ):\n\u001b[0;32m   3811\u001b[0m         \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3812\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m   3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[0;32m   3814\u001b[0m     \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m   3815\u001b[0m     \u001b[38;5;66;03m#  InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m   3816\u001b[0m     \u001b[38;5;66;03m#  the TypeError.\u001b[39;00m\n\u001b[0;32m   3817\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
      "\u001b[1;31mKeyError\u001b[0m: 'Buy'"
     ]
    },
    {
     "data": {
      "image/png": "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WVlZh7sZ0gkFg0H9gpIOQWNVOgKNU+koNFalI9A4lY5CY7V1fNcMnyYq5CwiIiIiIiIi0gkp9BERERERERER6YQU+ojsJ7fbza233orb7T7cTRH5Thqr0hFonEpHobEqHYHGqXQUGqvtr9MWchYREREREREROZpppo+IiIiIiIiISCek0EdEREREREREpBNS6CMiIiIiIiIi0gkp9BERERERERER6YQU+shR5c4772Tw4MHExMSQkpLCqaeeyvLly1scU19fzxVXXEFiYiKBQIAf/OAHlJWVtThm/fr1TJo0CZ/PR0pKCjfccAPhcHiv15w1axYOh4OioqK26pZ0Mu05Tp977jn69++Pz+cjPT2diy66iB07drR5H6VzaK2xevXVV1NcXIzb7d7r78oZM2YwefJk0tPT8fv9FBUV8dxzz7Vl16QTaa9xCmCaJnfffTf5+fm43W4yMzO544472qpr0sm0xlj98ssvOeecc8jOzsbr9dKrVy/uu+++Pa41Y8YMBg4ciNvtpnv37jz55JNt3T3pRNpzrDbRPdXBU+gjR5WZM2dyxRVXMHfuXN5//31CoRAnnHACNTU1zcf8/Oc/5/XXX2fq1KnMnDmTzZs3c/rppze/HolEmDRpEo2NjcyePZunnnqKJ598kltuuWWP65WXl3P++eczbty4dumfdA7tNU5nzZrF+eefz09+8hMWL17M1KlTmTdvHj/72c/atb/ScbXGWG1y0UUXcdZZZ+31OrNnz6awsJB///vffPXVV1x44YWcf/75vPHGG23WN+k82mucAlxzzTX87W9/4+6772bZsmW89tprDBkypE36JZ1Pa4zV+fPnk5KSwrPPPsvixYv59a9/zZQpU3jwwQebj1mzZg2TJk1izJgxLFy4kGuvvZaf/vSnvPvuu+3aX+m42musNtE91SEyRY5iW7duNQFz5syZpmmaZnl5uel0Os2pU6c2H7N06VITMOfMmWOapmm+9dZbps1mM0tLS5uPeeSRR8xgMGg2NDS0OP9ZZ51l/uY3vzFvvfVWs3///m3fIemU2mqc3nXXXWZeXl6La91///1mZmZmW3dJOqmDGavfdiC/KydOnGheeOGFrdJuObq01ThdsmSJ6XA4zGXLlrVZ2+Xocqhjtcnll19ujhkzpvm/b7zxRrNPnz4tjjnrrLPM8ePHt3IP5GjRVmO1ie6pDo1m+shRraKiAoCEhATASpxDoRDHHXdc8zEFBQXk5OQwZ84cAObMmUO/fv1ITU1tPmb8+PFUVlayePHi5ueeeOIJVq9eza233toeXZFOrK3GaUlJCRs2bOCtt97CNE3Kysp48cUXmThxYnt1TTqZgxmrh3KtpuuIHIi2Gqevv/46eXl5vPHGG3Tt2pUuXbrw05/+lJ07d7ZuB+So0Vpj9b9/X86ZM6fFOcD6O8Kh/l6Wo1dbjVXQPVVrcBzuBogcLtFolGuvvZYRI0bQt29fAEpLS3G5XMTFxbU4NjU1ldLS0uZjvn0j3fR602sAK1eu5KabbuLjjz/G4dCPmRy8thynI0aM4LnnnuOss86ivr6ecDjMySefzEMPPdTGvZLO6GDH6sF44YUX+Oyzz3j00UcPpclyFGrLcbp69WrWrVvH1KlTefrpp4lEIvz85z/nhz/8IdOnT2/NbshRoLXG6uzZs3n++ed58803m5/b198RKisrqaurw+v1tm5npFNry7Gqe6rWoU9OjlpXXHEFixYt4pNPPmnV80YiEX70ox9x2223kZ+f36rnlqNPW41TgCVLlnDNNddwyy23MH78eLZs2cINN9zApZdeyuOPP97q15POrS3H6rd9+OGHXHjhhfz1r3+lT58+bXot6XzacpxGo1EaGhp4+umnm/////jjj1NcXMzy5cvp2bNnq19TOq/WGKuLFi1i8uTJ3HrrrZxwwgmt2DqR3dpqrOqeqvUo9JGj0pVXXskbb7zBRx99RFZWVvPzaWlpNDY2Ul5e3iKZLisrIy0trfmYefPmtThfUyX6tLQ0qqqq+Pzzz1mwYAFXXnklYP1F0DRNHA4H7733HmPHjm3jHkpn0JbjFKydF0aMGMENN9wAQGFhIX6/n5EjR/L73/+e9PT0tuyedCKHMlYPxMyZMzn55JO55557OP/881uj6XIUaetxmp6ejsPhaHFz0qtXL8DaTVGhj+yv1hirS5YsYdy4cVx88cX85je/afFaWlraHrvTlZWVEQwGNctHDkhbjlXdU7Ue1fSRo4ppmlx55ZW8/PLLTJ8+na5du7Z4vbi4GKfTybRp05qfW758OevXr6ekpASw6qB8/fXXbN26tfmY999/n2AwSO/evQkGg3z99dcsXLiw+evSSy+lZ8+eLFy4kKFDh7ZPZ6XDao9xClBbW4vN1vJ/A3a7vbkNIt+nNcbq/poxYwaTJk3ij3/8IxdffHGrtF+ODu01TkeMGEE4HGbVqlXNz61YsQKA3NzcQ+yFHA1aa6wuXryYMWPGcMEFF3DHHXfscZ2SkpIW5wDr7wgH+ntZjl7tMVZ1T9WKDlcFaZHD4bLLLjNjY2PNGTNmmFu2bGn+qq2tbT7m0ksvNXNycszp06ebn3/+uVlSUmKWlJQ0vx4Oh82+ffuaJ5xwgrlw4ULznXfeMZOTk80pU6bs87qqNC8Hor3G6RNPPGE6HA7z4YcfNletWmV+8skn5qBBg8whQ4a0a3+l42qNsWqaprly5UpzwYIF5iWXXGLm5+ebCxYsMBcsWNC809z06dNNn89nTpkypcV1duzY0a79lY6pvcZpJBIxBw4caI4aNcr84osvzM8//9wcOnSoefzxx7drf6Xjao2x+vXXX5vJycnmeeed1+IcW7dubT5m9erVps/nM2+44QZz6dKl5kMPPWTa7XbznXfeadf+SsfVXmP1v+me6uAo9JGjCrDXryeeeKL5mLq6OvPyyy834+PjTZ/PZ5522mnmli1bWpxn7dq15oQJE0yv12smJSWZ119/vRkKhfZ5Xf2CkgPRnuP0/vvvN3v37m16vV4zPT3dPPfcc82NGze2RzelE2itsTp69Oi9nmfNmjWmaZrmBRdcsNfXR48e3X6dlQ6rvcapaZrmpk2bzNNPP90MBAJmamqq+eMf/1jhpOy31hirt956617PkZub2+JaH374oVlUVGS6XC4zLy+vxTVEvk97jtVv0z3VwTFMU3P4RUREREREREQ6G9X0ERERERERERHphBT6iIiIiIiIiIh0Qgp9REREREREREQ6IYU+IiIiIiIiIiKdkEIfEREREREREZFOSKGPiIiIiIiIiEgnpNBHRERERERERKQTUugjIiIiIiIiItIJKfQREREREREREemEFPqIiIiIiIiIiHRCCn1ERERERERERDohhT4iIiIiIiIiIp3Q/wNekwIDiExQVAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1400x1000 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "# Assuming `data` is your DataFrame and `ticker` is defined# Ensure that 'data' has the columns: 'Close', 'Volume', '20_MA', 'Buy', 'Sell'\n",
    "# Calculate the 20-day moving average for volume\n",
    "data['20_Volume_MA'] = data['Volume'].rolling(window=20).mean()\n",
    "data['20_MA'] = data['Close'].rolling(window=20).mean()\n",
    "# Create a figure with a gridspec layout for custom height ratios\n",
    "fig = plt.figure(figsize=(14, 10))\n",
    "gs = gridspec.GridSpec(2, 1, height_ratios=[2, 1]) \n",
    "# Set height ratio for price and volume\n",
    "# Create the main price subplot\n",
    "ax1 = fig.add_subplot(gs[0])\n",
    "# Plot closing price and moving average\n",
    "ax1.plot(data.index, data['Close'], label='WBC Close Price', color='blue', alpha=0.6)\n",
    "ax1.plot(data.index, data['20_MA'], label='20-Day MA', color='orange', alpha=0.6)\n",
    "# Plot buy signals\n",
    "ax1.plot(data[data['Buy']].index, data['Close'][data['Buy']], '^', markersize=10, color='g', label='Buy Signal', alpha=1)\n",
    "# Plot sell signals\n",
    "ax1.plot(data[data['Sell']].index, data['Close'][data['Sell']], 'v', markersize=10, color='r', label='Sell Signal', alpha=1)\n",
    "# Configure the first y-axis\n",
    "ax1.set_ylabel('Price in USD')\n",
    "ax1.set_title(f'600519 Stock Price with Buy/Sell Signals')\n",
    "ax1.legend(loc='upper left')\n",
    "# Create the volume subplot\n",
    "ax2 = fig.add_subplot(gs[1])\n",
    "# Plot volume as a bar chart\n",
    "ax2.bar(data.index, data['Volume'], color='lightgrey', alpha=0.3, label='Volume')\n",
    "# Plot the 20-day moving average for volume\n",
    "ax2.plot(data.index, data['20_Volume_MA'], label='20-Day Volume MA', color='purple', alpha=0.6)\n",
    "# Set ylabel and legend for volume subplot\n",
    "ax2.set_ylabel('Volume')\n",
    "ax2.legend(loc='upper right')\n",
    "# Set x-axis labels for the bottom subplot\n",
    "ax2.set_xlabel('Date')\n",
    "# Adjust layout for better spacing\n",
    "plt.tight_layout()\n",
    "# Show the plot\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "FAL",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
